// DOC/DOCX 文档读取插件 - 沙盒适配版本
// 注意：mammoth 依赖需要通过沙盒系统的第三方库支持机制提供

module.exports = {
    // 沙盒适配：支持能力注入
    async process({ filePath }, options = {}) {
        // 从沙盒注入的能力中获取文件系统和路径处理能力
        const fs = options.fs || require('fs'); // 向后兼容
        const path = options.path || require('path'); // 向后兼容
        
        // 验证文件存在性
        if (!fs.existsSync(filePath)) {
            throw new Error('文件不存在');
        }
        
        // 获取文件扩展名
        const ext = path.extname(filePath).toLowerCase();
        
        if (ext === '.docx') {
            try {
                // 尝试使用mammoth处理docx文件
                // 注意：在沙盒环境中，mammoth需要通过沙盒的第三方库机制提供
                const mammoth = require('mammoth');
                const result = await mammoth.extractRawText({ path: filePath });
                return { 
                    content: result.value,
                    success: true,
                    format: 'docx'
                };
            } catch (error) {
                // 如果mammoth不可用，返回错误信息
                console.error('[DocReader] mammoth依赖不可用:', error.message);
                return { 
                    content: '[错误] DOCX文件处理失败：缺少mammoth依赖库',
                    success: false,
                    error: error.message,
                    format: 'docx'
                };
            }
        } else if (ext === '.doc') {
            // doc 格式限制说明
            return { 
                content: '[提示] DOC格式暂不支持直接读取，请转换为DOCX格式后重试',
                success: false,
                format: 'doc',
                suggestion: '建议使用Microsoft Word或其他工具将DOC文件转换为DOCX格式'
            };
        } else {
            throw new Error(`不支持的文件格式: ${ext}，仅支持 .doc 和 .docx 文件`);
        }
    },
    
    // 沙盒适配：设置能力注入（如果插件需要动态注入能力）
    setCapabilities(capabilities = {}) {
        this.fs = capabilities.fs;
        this.path = capabilities.path;
    },
    
    // 获取插件支持的能力需求
    getRequiredCapabilities() {
        return ['fs', 'path'];
    },
    
    // 获取插件信息
    getInfo() {
        return {
            name: 'doc-reader',
            version: '1.1.0',
            description: 'DOC/DOCX文档读取插件（沙盒适配版）',
            supportedFormats: ['.doc', '.docx'],
            dependencies: ['mammoth'], // 声明外部依赖
            sandboxCompatible: true
        };
    }
};
